BlazeComponent.extendComponent({
  onCreated() {
    this.subscribe('allRules');
  },
  events() {
    return [{
      'click .js-add-checklist-items-action' (event) {
        const ruleName = this.data().ruleName.get();
        const trigger = this.data().triggerVar.get();
        const checklistName = this.find('#checklist-name-3').value;
        const checklistItems = this.find('#checklist-items').value;
        const boardId = Session.get('currentBoard');
        const desc = Utils.getTriggerActionDesc(event, this);
        const triggerId = Triggers.insert(trigger);
        const actionId = Actions.insert({
          actionType: 'addChecklistWithItems',
          checklistName,
          checklistItems,
          boardId,
          desc,
        });
        Rules.insert({
          title: ruleName,
          triggerId,
          actionId,
          boardId,
        });

      },
      'click .js-add-checklist-action' (event) {
        const ruleName = this.data().ruleName.get();
        const trigger = this.data().triggerVar.get();
        const actionSelected = this.find('#check-action').value;
        const checklistName = this.find('#checklist-name').value;
        const boardId = Session.get('currentBoard');
        const desc = Utils.getTriggerActionDesc(event, this);
        if (actionSelected === 'add') {
          const triggerId = Triggers.insert(trigger);
          const actionId = Actions.insert({
            actionType: 'addChecklist',
            checklistName,
            boardId,
            desc,
          });
          Rules.insert({
            title: ruleName,
            triggerId,
            actionId,
            boardId,
          });
        }
        if (actionSelected === 'remove') {
          const triggerId = Triggers.insert(trigger);
          const actionId = Actions.insert({
            actionType: 'removeChecklist',
            checklistName,
            boardId,
            desc,
          });
          Rules.insert({
            title: ruleName,
            triggerId,
            actionId,
            boardId,
          });
        }

      },
      'click .js-add-checkall-action' (event) {
        const ruleName = this.data().ruleName.get();
        const trigger = this.data().triggerVar.get();
        const actionSelected = this.find('#checkall-action').value;
        const checklistName = this.find('#checklist-name2').value;
        const boardId = Session.get('currentBoard');
        const desc = Utils.getTriggerActionDesc(event, this);
        if (actionSelected === 'check') {
          const triggerId = Triggers.insert(trigger);
          const actionId = Actions.insert({
            actionType: 'checkAll',
            checklistName,
            boardId,
            desc,
          });
          Rules.insert({
            title: ruleName,
            triggerId,
            actionId,
            boardId,
          });
        }
        if (actionSelected === 'uncheck') {
          const triggerId = Triggers.insert(trigger);
          const actionId = Actions.insert({
            actionType: 'uncheckAll',
            checklistName,
            boardId,
            desc,
          });
          Rules.insert({
            title: ruleName,
            triggerId,
            actionId,
            boardId,
          });
        }
      },
      'click .js-add-check-item-action' (event) {
        const ruleName = this.data().ruleName.get();
        const trigger = this.data().triggerVar.get();
        const checkItemName = this.find('#checkitem-name');
        const checklistName = this.find('#checklist-name3');
        const actionSelected = this.find('#check-item-action').value;
        const boardId = Session.get('currentBoard');
        const desc = Utils.getTriggerActionDesc(event, this);
        if (actionSelected === 'check') {
          const triggerId = Triggers.insert(trigger);
          const actionId = Actions.insert({
            actionType: 'checkItem',
            checklistName,
            checkItemName,
            boardId,
            desc,
          });
          Rules.insert({
            title: ruleName,
            triggerId,
            actionId,
            boardId,
          });
        }
        if (actionSelected === 'uncheck') {
          const triggerId = Triggers.insert(trigger);
          const actionId = Actions.insert({
            actionType: 'uncheckItem',
            checklistName,
            checkItemName,
            boardId,
            desc,
          });
          Rules.insert({
            title: ruleName,
            triggerId,
            actionId,
            boardId,
          });
        }
      },
    }];
  },

}).register('checklistActions');
